这题有复杂度O(3^n)，而且常数很小的算法。这基于下面这个简单又漂亮的位运算枚举子集的循环
for (int sub = mask; sub != 0; sub = (sub - 1) & mask)
